//Copyright 2008 David Fidge
//Licensed under the Apache License, Version 2.0 (the "License"); 
//you may not use this file except in compliance with the License. 
//You may obtain a copy of the License at 

//http://www.apache.org/licenses/LICENSE-2.0 

//Unless required by applicable law or agreed to in writing, software 
//distributed under the License is distributed on an "AS IS" BASIS, 
//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
//See the License for the specific language governing permissions and 
//limitations under the License.

namespace InputHandlers.State
{
    public abstract class State<EntityType>
    {
        public abstract void Enter(EntityType e);
        public abstract void Execute(EntityType e);
        public abstract void Exit(EntityType e);
        //reset should clear any specific data that is kept between execute calls
        public abstract void Reset(EntityType e);
    }
}
